#ifndef _VN_MENU_MANAGER_H_
#define _VN_MENU_MANAGER_H_

#include <vector>
#include "..\Graphics\Text.h"
#include "..\Graphics\Color.h"
#include "..\Math\Vector2.h"

class Button;
class MenuManager
{
public:
	MenuManager(const vn::Vector2& p_position, float p_spacing);
	~MenuManager(void);

	void update();

	void addChoice(Button*);
	void setSpacing(float);
	void setPosition(const vn::Vector2&);
	void setCurrentChoice(int);
	void setActive(bool p_value);
	const bool isActive() const { return m_isActive; }
	void addTitle(unsigned int p_view, const std::string& p_string, const std::string& p_font, const vn::Color& p_color, float p_scale, float p_layer);

protected:
	void resetTextPositions();
	inline void confirmSelectionColor(int);
	inline void confirmPosition();
	vn::Text* m_title;
	std::string m_font;
	std::vector<Button*> m_choices;
	vn::Vector2 m_position;
	float m_spacing;
	int m_currentChoice;
	bool m_isActive;
};

#endif // _VN_MENU_MANAGER_H_